A link aggregation (e.g., as set forth in IEEE 802.3ad) is a computer networking term which describes using multiple links (e.g., Ethernet network cables and/or ports in parallel) as one logical port to increase the link speed beyond the limits of any one single link. Other terms used for link aggregation may include Ethernet trunking, port teaming, NIC bonding, link bundling, and/or link aggregation group (LAG). LAG will be used hereinafter to refer to link aggregation.
LAG is an inexpensive way to set up a high-speed backbone network that may transfer more datagrams (e.g., traffic) than any one single port or device can support. A “datagram(s)” may include any type or form of data, such as packet or non-packet data. LAG may permit several devices to communicate simultaneously at their full single-port speed. Network datagrams may be dynamically distributed across ports so that administration of what datagrams actually flow across a given port may be taken care of automatically with the LAG.
A LAG control protocol (LACP), such as the LACP set forth in IEEE 802.3ad, allows one or more links to be aggregated together to form a LAG. Once implemented, the LAG can be configured and reconfigured quickly and automatically with a low risk of duplication or rendering of frames.
Load balancing may be used across multiple parallel links between two network devices. One method of load balancing used today is based on an Internet Protocol (IP) header data address. Another method, which may be used for non-IP protocols and for double-tagged frames, is based on a media access control (MAC) address. A LAG may provide local link protection. Should one of the multiple links used in a LAG fail, network traffic (e.g., datagrams) may be dynamically redirected to flow across the remaining good links in the LAG. The redirection may be triggered because of dynamic hashing to surviving LAG links. The network device may send the datagrams to the surviving LAG links, and the network may continue to operate with virtually no interruption in service.
Some LAG designs use two equal capacity links (e.g., two (1) gigabyte-per-second (Gbps) links) in a LAG, and the two links may attempt to protect each other. However, current load balancing methods do not guarantee even distribution of traffic among LAG links. For example, a LAG with two (1) Gbps links has an aggregated capacity of (2) Gbps, but may not be able to support the aggregated capacity because the traffic may not be evenly assigned to the two links (i.e., one link may be congested and the other link may be under-utilized). Furthermore, current load balancing methods do not fully protect traffic during link failure. To protect traffic during a link failure, the traffic load per service class handled by the LAG may be adjusted for oversubscription (i.e., connecting multiple devices to the same port to optimize network device use) and/or may not exceed one link capacity. For example, in order to protect traffic if a link fails, a LAG using two (1) Gbps links may not commit to more than a (1) Gbps traffic load, and each service class may not go beyond its bandwidth designed for a single link. This may result in wasted bandwidth.